<?php
// +----------------------------------------------------------------------
// | 幕小铺
// +----------------------------------------------------------------------
// | 版权所有 2016~2020 幕小铺科技（大连）有限公司
// +----------------------------------------------------------------------
// | 2020/03/14
// +----------------------------------------------------------------------

namespace app\erp\home;
use app\common\controller\AuthCheck;

/**
 * 购物车管理
 * @package app\cms\admin
 */
class Salecar extends AuthCheck{
    /**
     * 购物车列表
     * @author shiqiang
     * @return json_out(code, message, data)
     */
    public function list(){
        //参数接收
        $params 		= $this->getParams(0);//0 get 1 post
        $user_id    	= intval(isset($params["user_id"]) ? $params["user_id"] : 0);//操作用户ID
        $store_id    	= intval(isset($params["store_id"]) ? $params["store_id"] : 0);//操作用户ID
		
        //数据验证
        $Validate = validate('Salecar', 'validate');
        if( !$Validate -> scene('salecar_list') -> check($params) ){
            json_out(-1001, $Validate -> getError(), []);//验证失败
        }

        //逻辑处理
        $list = controller('Salecarlogic', 'logic') -> salecar_list($user_id, $store_id);

        //数据返回
        if($list['code'] == 200){
            json_out($list['code'], $list['message'], $list['data']);
        }else{
            json_out($list['code'], $list['message'], []);
        }
    }

    /**
     * 添加
     * @author shiqiang
     * @return json_out(code, message, (int)id)
     */
    public function add(){
        //参数接收
        $params 	= $this->getParams(1);//0 get 1 post
        $user_id    = intval(isset($params["user_id"]) ? $params["user_id"] : 0);//操作用户ID
        $goods_id   = intval(isset($params["goods_id"]) ? $params["goods_id"] : 0);
        $sku_id    	= intval(isset($params["sku_id"]) ? $params["sku_id"] : 0);
        $num   		= intval(isset($params["num"]) ? $params["num"] : 0);
        $store_id   = intval(isset($params["store_id"]) ? $params["store_id"] : 0);
		
        //数据验证
        $Validate = validate('Salecar', 'validate');
        if( !$Validate -> scene('salecar_add') -> check($params) ){
            json_out(-1001, $Validate -> getError());//验证失败
        }

        //逻辑处理
        $list = controller('Salecarlogic', 'logic') -> add($user_id, $goods_id, $sku_id, $num, $store_id);
        //数据返回
        if($list['code'] == 200){
            json_out($list['code'], '新增成功');
        }else{
            json_out($list['code'], $list['message']);
        }
    }
	
	/**
     * 添加 - 扫一扫
     * @author shiqiang
     * @return json_out(code, message, (int)id)
     */
    public function add_scan(){
        //参数接收
        $params 	= $this->getParams(1);//0 get 1 post
        $user_id    = intval(isset($params["user_id"]) ? $params["user_id"] : 0);//操作用户ID
        $article_no = isset($params["article_no"]) ? $params["article_no"] : 0;
        $num   		= 1;
        $store_id   = intval(isset($params["store_id"]) ? $params["store_id"] : 0);
		
        //数据验证
        $Validate = validate('Salecar', 'validate');
        if( !$Validate -> scene('salecar_add_scan') -> check($params) ){
            json_out(-1001, $Validate -> getError());//验证失败
        }

        //逻辑处理
        $list = controller('Salecarlogic', 'logic') -> add_scan($user_id, $article_no, $num,$store_id);
        //数据返回
        if($list['code'] == 200){
            json_out($list['code'], '新增成功');
        }else{
            json_out($list['code'], $list['message']);
        }
    }

    /**
     * 编辑数量
     * @param id  int  仓库id
     * @param num int  数量
     * @author shiqiang
     * @return json_out(code, message, (int)id)
     */
    public function update_sku_num(){
        //参数接收
        $params 	= $this->getParams(1);//0 get 1 post
        $user_id    = intval(isset($params["user_id"]) ? $params["user_id"] : 0);//操作用户ID
        $id    		= intval(isset($params["id"]) ? $params["id"] : 0);
        $num    	= intval(isset($params["num"]) ? $params["num"] : 0);

        //数据验证
        $Validate = validate('Salecar', 'validate');
        if( !$Validate -> scene('update_sku_num') -> check($params) ){
            json_out(-1001, $Validate -> getError());//验证失败
        }

        //逻辑处理
        $list = controller('Salecarlogic', 'logic') -> update_sku_num($user_id, $id, $num);

        //数据返回
        if($list['code'] == 200){
            json_out($list['code'], '编辑成功');
        }else{
            json_out($list['code'], $list['message']);
        }
    }
	
	/**
     * 切换商品sku属性
     * @param id  		int  仓库id
     * @param goods_id 	int  商品id
     * @param sku_id 	int  sku_id
     * @author shiqiang
     * @return json_out(code, message, (int)id)
     */
    public function update_sku_id(){
        //参数接收
        $params 	= $this->getParams(1);//0 get 1 post
        $user_id    = intval(isset($params["user_id"]) ? $params["user_id"] : 0);//操作用户ID
        $id    		= intval(isset($params["id"]) ? $params["id"] : 0);
        $goods_id   = intval(isset($params["goods_id"]) ? $params["goods_id"] : 0);
        $sku_id   	= intval(isset($params["sku_id"]) ? $params["sku_id"] : 0);

        //数据验证
        $Validate = validate('Salecar', 'validate');
        if( !$Validate -> scene('update_sku_id') -> check($params) ){
            json_out(-1001, $Validate -> getError());//验证失败
        }

        //逻辑处理
        $list = controller('Salecarlogic', 'logic') -> update_sku_id($user_id, $id, $goods_id, $sku_id);

        //数据返回
        if($list['code'] == 200){
            json_out($list['code'], '编辑成功');
        }else{
            json_out($list['code'], $list['message']);
        }
    }

    /**
     * 删除
     * @param array $id
     * @author shiqiang
     * @return bool
     */
    public function delete(){
        //参数接收
        $params 	= $this->getParams(1);//0 get 1 post
        $user_id    = intval(isset($params["user_id"]) ? $params["user_id"] : 0);//操作用户ID
        $id 		= isset($params["id"]) ? $params["id"] : [];

        //数据验证
        $Validate = validate('Salecar', 'validate');
        if( !$Validate -> scene('salecar_delete') -> check($params) ){
            json_out(-1001, $Validate -> getError());//验证失败
        }

        //逻辑处理
        $list = controller('Salecarlogic', 'logic') -> delete($user_id, $id);

        //数据返回
        if($list['code'] == 200){
            json_out($list['code'], '删除成功');
        }else{
            json_out($list['code'], $list['message']);
        }
    }

}